package com.xnx3.kefu.admin.util;

import java.lang.reflect.Field;

import org.springframework.beans.BeanUtils;

import com.xnx3.Log;
import com.xnx3.j2ee.bean.ActiveUser;
import com.xnx3.j2ee.util.ConsoleUtil;
import com.xnx3.kefu.core.entity.Kefu;

import net.sf.json.JSONObject;

/**
 * sessison
 * @author 管雷鸣
 *
 */
public class SessionUtil extends com.xnx3.j2ee.util.SessionUtil{
	//客服管理后台登录后，存储的客服账户信息
	public static final String PLUGIN_NAME_KEFU = "shop:kefu:data";
	
	/**
	 * 获取当前登录的客服
	 */
	public static Kefu getKefu(){
		Object obj = getPlugin(PLUGIN_NAME_KEFU);
		
		//jar包方式运行，可能是开发环境
		if (obj instanceof Kefu) {
			//正常运行 yunkefu、 以及线上部署都会走这个
			return (Kefu) obj;
		} else {
			//运行 yunkefu_deploy 、或者开了redis运行会走这个，因为涉及到热部署开辟了两块内存，虽然对象看上去一样，但实际是两个内存地址，所以上面的比对是不等的，要将两个内存中的数据进行交换
			Kefu kefu = new Kefu();
			JSONObject json = JSONObject.fromObject(obj);
			Object kefuObj = JSONObject.toBean(json, Kefu.class);
			kefu = (Kefu) kefuObj;
			return kefu;
		}
	}
	
	/**
	 * 设置当前登录的客服
	 */
	public static void setKefu(Kefu kefu){
		setPlugin(PLUGIN_NAME_KEFU, kefu);
	}
	
}

